/**
 * @Title:业务接口
 * @Description:权限管理
 * Copyright 2018 GemFrame技术团队 http://www.gemframe.cn
 * Company: DianShiKongJian (Beijing) Technology Co., Ltd.
 * @author Ryan
 * @date 2018-11-1 16:06:06
 * @version V1.0
 *
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package cn.gemframe.business.service;

import cn.gemframe.business.domain.GemPermissionsAttribute;
import cn.gemframe.business.vo.GemPermissionsAttributeVo;

import java.util.List;

/**
 * @Title:业务接口
 * @Description:权限管理
 * @author Ryan
 * @date 2018-11-1 16:06:06
 * @version V1.0
 */
public interface GemPermissionsAttributeService {

	/**
	 * @Description:添加权限的属性值
	 * @param permissionsAttributeVo 权限的属性对象
	 * @author: Ryan  
	 * @date 2018年11月5日
	 */
	Integer savePermissAttr(GemPermissionsAttributeVo permissionsAttributeVo);

	/**
	 * @Description:删除权限的属性值
	 * @param id 权限的属性值主键
	 * @author: Ryan  
	 * @date 2018年11月5日
	 */
	Integer deletePermissAttrById(Long[] id);

	/**
	 * @Description:修改权限的属性值
	 * @param permissionsAttributeVo 权限的属性对象
	 * @author: Ryan  
	 * @date 2018年11月5日
	 */
	Integer updatePermissAttr(GemPermissionsAttributeVo permissionsAttributeVo);

	/**
	 * @Description:根据主键查询权限的属性值
	 * @param id 权限的属性值主键
	 * @author: Ryan  
	 * @date 2018年11月5日
	 */
	GemPermissionsAttribute findPermissAttrById(Long id);

	/**
	 * @Description:查询属性值
	 * @param id 权限主键
	 * @param roleId 角色主键
	 * @author: Ryan  
	 * @date 2018年11月12日
	 */
	List<GemPermissionsAttribute> findAttrByPermissId(Long id, Long roleId);
	
	List<GemPermissionsAttribute> findAttrByPermissId(Long id, List<Long> roleId);

	/**
	 * @Description: 关联属性值
	 * @param permissid 权限主键
	 * @param roleId 角色主键
	 * @param attrs 属性主键集合
	 * @author: Ryan  
	 * @date 2018年11月12日
	 */
	Integer updateAssociatedAttr(Long permissid, Long roleId, Long[] attrs);

	/**
	 * @Description:属性列表
	 * @param id 权限主键
	 * @author: Ryan  
	 * @date 2018年11月14日
	 */
	List<GemPermissionsAttribute> findPermissAttrList(Long id);

}
